<?php
namespace app\api\model;

use app\api\model\Model;

class Common extends Model{

    /**
     * 获取基础信息列表
     * @param array $getBase 
     * @param array $where 
    */ 
    public function getBase($where=null,$file='*'){ 
        $baselist = Model::name('sys_basics')
            ->field($file)
            ->where($where)
            ->select()
            ->toArray();
        foreach ($baselist as $key => $value) {
            $baselist[$key]['content']=!empty($value['content'])?json_decode($value['content'],true):[];
        }
        return $baselist;
    }

    /**
     * 获取基础信息
     * @param array $getBaseinfo 
     * @param array $where 
    */ 
    public function getBaseinfo($where=null,$file='*'){ 
        $baseinfo = Model::name('sys_basics')
            ->field($file)
            ->where($where)
            ->find();
        $baseinfo['content']=!empty($baseinfo['content'])?json_decode($baseinfo['content'],true):[];
        return $baseinfo;
    }

    /**
     * 获取账户资金
     * @param array $getAccount 
     * @param array $where 
    */ 
    public function getAccount($where=null,$file='*'){ 
        $account = Model::name('user_account')
            ->field($file)
            ->where($where)
            ->find();
        return $account;
    }

    /**
     * 更新账户资金
     * @param array $updateAccount 
     * @param array $where 
    */ 
    public function updateAccount($where=null,$data=[]){ 
        Model::name('user_account')
            ->where($where)
            ->update($data);
        return true;
    }

    /**
     * 签到
     * @param array $signin 
     * @param array $where 
    */ 
    public function signin($num=0,$data=[]){
        switch (true) {
            case $num>0:
                Model::name('user_signin')
                    ->where(' aid = '.$data['aid'])
                    ->update($data);
                break;
            
            default:
                Model::name('user_signin')
                    ->insert($data);
                break;
        }
        return true;
    }

    /**
     * 获取签到
     * @param array $getsign 
     * @param array $where 
     * @param array $type 默认1，计算数量2 
    */ 
    public function getsign($where=''){
        $signin = Model::name('user_signin')
            ->where($where)
            ->find(); 
        return $signin;
    }

    /**
     * 获取有效汇率
     * @param array $getexchangeinfo
     * @param array $where 
     */
    public function getexchangeinfo($where='dels<1',$file='*')
    {
        //有效汇率
        $exchange = Model::name('settle_exchange')
            ->field($file)
            ->where($where)
            ->order('id asc')
            ->find();
        return $exchange;
    }

    /**
     * 获取区域
     * @param array $getarea 
     * @param array $where 
    */ 
    public function getarea($where=''){
        $area = Model::name('sys_area')
            ->where($where)
            ->select()
            ->toArray();
        return $area;
    }

    /**
     * 客服
     * @param array $getcuster 
     * @param array $where 
    */ 
    public function getcuster($where=null, $page=1, $page_size=10){
        $list['datalist'] = Model::name('sys_custer')
            ->field('*')
            ->where($where)
            ->limit(($page-1)*$page_size,$page_size)
            ->order('id desc')
            ->select()
            ->toArray();
        $list['total']=Model::name('sys_custer')
            ->where($where)
            ->count('id');
        return $list;
    }
    
    /**
     * 验证验证
     * @param array $getcode 
     * @param array $where 
    */ 
    public function getcode($code){
        $id = Model::name('user_code')
            ->where('code="'.$code.'" and endtime>'.time())
            ->find();
        return $id;
    }
    
    /**
     * 保存验证码
     * @param array $savacode 
     * @param array $where 
    */ 
    public function savacode($where=0,$data=[]){
        $num=Model::name('user_code')
            ->where($where)
            ->count('id');
        switch (true) {
            case $num>0:
                Model::name('user_code')
                    ->where($where)
                    ->update($data);
                break;
            
            default:
                Model::name('user_code')
                    ->insert($data);
                break;
        }
        return true;
    }

    /**
     * 事务 开始
     * @param array $startTrans
     * @param array $id
     */
    public function startTrans()
    {
        return Model::startTrans();      
    }

    /**
     * 事务执行
     * @param array $commit
     * @param array $id
     */
    public function commit()
    {
        return Model::commit();      
    }

    /**
     * 事务回滚
     * @param array $rollback
     * @param array $id
     */
    public function rollback()
    {
        return Model::rollback();   
    }

}